#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MCL_STR_ERR_C
#include "mcl/str.h"



mcl_str_t mcl_str_nomemstr[MCL_STR_EXTRA_BYTES] = {0}; /* fallback memory */

int mcl_str_status(mcl_str_t* str){
   mcl_str__prepare(str);
   return *mcl_str__erraddr(str);
}

mcl_str_t* mcl_str___seterr(mcl_str_t* str, int err){
   if(err == MCL_STR_ENOMEM){
      *mcl_str__erraddr(mcl_str_nomemstr)=MCL_STR_ENOMEM;
      return mcl_str__straddr(mcl_str_nomemstr);
   }
   else{
      if (!str) str=mcl_str("");
      mcl_str__prepare(str);
      *mcl_str__erraddr(str)=err;
      return mcl_str__straddr(str);
   }
}

mcl_str_t*    mcl_str_generr(char ERR){
   char *buffer=NULL;

   buffer=mcl_str___sct(buffer, "", 0);
   //FIXME: 
   
   return mcl_str__straddr(buffer);
}



